package de.stefanocke.roo.kontaktliste.web.common;

import org.apache.wicket.model.IModel;
import org.apache.wicket.model.LoadableDetachableModel;

public abstract class BindingsBase<T> implements IBindings<T> {
	
	/**
	 * Creates a new model for the embedded object. By default, it will
	 * reflectively create a new instance on load.
	 * 
	 * @param clazz the type of the model
	 * 
	 * @return the new model
	 */
//	@Override
//	public IModel<T> createNewModel() {
//
//		return new LoadableDetachableModel<T>() {
//			/***/
//			private static final long serialVersionUID = 1L;
//
//			@Override
//			protected T load() {
//				return createNewModelObject();
//			}
//		};
//
//	}
//
//	protected T createNewModelObject() {
//
//		if (getObjectClass() == null) {
//			throw new IllegalArgumentException("ObjectClass is null. Please override getObjectClass().");
//		}
//		try {
//			T newInstance = getObjectClass().newInstance();
//			return newInstance;
//		} catch (Exception e) {
//			throw new RuntimeException(e);
//		}
//	}
//
//	protected abstract Class<T> getObjectClass();

}
